Time scales granted for program development have decreased in recent years. However, tests require an increased number of processes in order to confirm program functionality and operation due to increasing functionalities and greater operational complexity of programs. Various technologies have been proposed for efficient execution of program tests in response to these opposing trends.
For example, technology is known in which tests with high bug detection rates are selected, and executed, from out of plural tests for a program subject to test execution (referred to below as a test-target program). In such technology, from the standpoint of focusing tests on parts where there are more highly influential bugs present, priority levels are given to tests for functionalities of the test-target program in order to efficiently select tests out of plural tests. Test priority levels predefine evaluation standpoints and evaluation score weightings to give priority levels to functionalities, and the evaluation standpoints and evaluation score weightings are used to designate test priority levels for each functionality. Executing tests using the designated test priority levels increases bug detection rates.
Technology is also known in which sections that should be tested are pre-extracted based on modified parts of the test-target program, and program tests are executed. In such technology, dependency relationships are pre-extracted for each line of the test-target program (for example, each statement), and tests are executed that correspond to lines having a dependency relationship to modified lines. Moreover, such technology uses a priority level expressed as an index indicating dependency relationship strength in which values increase as the dependency relationship becomes lower. The priority levels are derived in advance using dependency relationships derived from analytical results of test-target program analysis. Test efficiency is thereby increased by using pre-analysis to derive the tests having strong dependency relationships with modified parts of the test-target program, and executing these tests.
Technology is also known in which tests are selected for a test-target program based on predefined importance levels and average execution times of the tests. In such technology, a user manually pre-sets, as test importance levels, values to determine whether or not a test is executed.